package com.moon.config;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

//默认配置方法
////定义Servlet容器启动的配置类 在里面加载spring的配置
//public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
////    加载springMVC容器的配置
//    @Override
//    protected WebApplicationContext createServletApplicationContext() {
//        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//        ctx.register(SpringMvcConfig.class);
//        return ctx;
//    }
////设置哪些请求归属springMVC处理
//    @Override
//    protected String[] getServletMappings() {
////        所有请求归SpringMVC处理
//        return new String[]{"/"};
//    }
////    加载Spring容器的配置
//    @Override
//    protected WebApplicationContext createRootApplicationContext() {
//        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//        ctx.register(SpringConfig.class);
//        return ctx;
//
//    }


//定义Servlet容器启动的配置类 在里面加载spring的配置
//                                                        抽象注释配置分配器Servlet初始化程序
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    //    加载Spring容器的配置
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{};
    }

    //    加载SpringMVC容器的配置
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    //    设置哪些请求归属springMVC处理
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //    乱码处理
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

